﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DTO;
using DAO;
using PTExpress.Models;
using System.Data;

namespace PTExpress.Controllers
{
    [Authorize]
    public class QLTuyenDuongController : AbstractController
    {

        public QLTuyenDuongController()
            : base()
        {
            Dictionary<int, string> LoaiTuyenDuong = new Dictionary<int, string>();
            LoaiTuyenDuong.Add(1, "Đường dài");
            LoaiTuyenDuong.Add(2, "Trung chuyển");
            this.ViewData.Add("LoaiTuyenDuong", LoaiTuyenDuong);

            ViewData["lsELoaiTuyenDuong"] = TuyenDuongDTO.GetListLoaiTuyenDuong();
        }

        public ActionResult Index()
        {
            TuyenDuongDAO tuyenDuongDAO = new TuyenDuongDAO();
            List<TuyenDuongDTO> ls = tuyenDuongDAO.GetAll();
            this.ViewData.Add("dsTuyenDuong", ls);
            return View();
        }

        public ActionResult Sua(int id)
        {
            TuyenDuongDAO tuyenDuongDAO = new TuyenDuongDAO();
            TuyenDuongDTO td = tuyenDuongDAO.getById(id);
            TuyenDuong model = new TuyenDuong();
            model.Id = id;
            model.GioChay = td.GioBatDauChay;
            model.GioNghi = td.GioNghi;
            model.KhoangCach = td.KhoangCach;
            model.LoaiTuyenDuong = td.Loai;
            model.NoiDen = td.NoiDen;
            model.NoiDi = td.NoiDi;
            model.SoLuongXe = td.SoLuongXe;
            ViewData["TenTuyenDuong"] = string.Format("{0} đi {1}", td.NoiDi,td.NoiDen);
            return View(model);
        }

        [HttpPost]
        public ActionResult Sua(TuyenDuong model, int id)
        {
            TuyenDuongDAO xeDAO = new TuyenDuongDAO();
            TuyenDuongDTO xeDTO = xeDAO.getById(id);

            ViewData["TenTuyenDuong"] = string.Format("{0} đi {1}", xeDTO.NoiDi, xeDTO.NoiDen);
            ViewData["ModelState"] = ModelState.IsValid;

            if (ModelState.IsValid)
            {
                xeDTO.GioBatDauChay = model.GioChay;
                xeDTO.GioNghi = model.GioNghi;
                xeDTO.KhoangCach = model.KhoangCach;
                xeDTO.Loai = model.LoaiTuyenDuong;
                xeDTO.NoiDen = model.NoiDen;
                xeDTO.NoiDi = model.NoiDi;
                bool thanhCong = xeDAO.Edit(xeDTO);
                ViewData["ThanhCong"] = thanhCong;

            }
            return View(model);
        }

        public ActionResult Them()
        {
            TuyenDuong model = new TuyenDuong();
            model.GioChay = "06:00:00";
            model.GioNghi = "20:00:00";
            return View(model);
        }

        [HttpPost]
        public ActionResult Them(TuyenDuong model)
        {
            if (ModelState.IsValid)
            {
                TuyenDuongDAO tuyenDuongDAO = new TuyenDuongDAO();
                TuyenDuongDTO tuyenDuongDTO = new TuyenDuongDTO();

                tuyenDuongDTO.NoiDen = model.NoiDen;
                tuyenDuongDTO.NoiDi = model.NoiDi;
                tuyenDuongDTO.KhoangCach = model.KhoangCach;
                tuyenDuongDTO.GioBatDauChay = model.GioChay;
                tuyenDuongDTO.GioNghi = model.GioNghi;
                tuyenDuongDTO.Loai = model.LoaiTuyenDuong;

                bool thanhCong = tuyenDuongDAO.AddNew(tuyenDuongDTO);
                ViewData["ThanhCong"] = thanhCong;
                if (thanhCong)
                {
                    return RedirectToAction("Index");
                }
            }
            return View();
        }

    }
}
